package com.yida.gwj.common.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.common.core.annotation.Excel;
import com.yida.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 签署意见对象 basis_business_log
 *
 * @author lqq
 * @date 2022-11-15
 */
public class GwjBaseBusinessLog extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	 * 业务日志ID
	 */
	@Excel(name = "业务日志ID")
	private Long bizLogId;

	/**
	 * 业务id
	 */
	@Excel(name = "业务id")
	@NotNull(groups = {Send.class, Sign.class, Fallback.class, Cancellation.class}, message = "业务ID不能为空")
	private Long bizId;

	/**
	 * 业务步骤
	 */
	@Excel(name = "业务步骤")
	private Long stepId;

	/**
	 * 0:保存,1:提交,2:回退;3送件;4审核通过;5完结
	 */
	@Excel(name = "0:保存,1:提交,2:回退;3送件;4审核通过;5完结")
	private String result;

	/**
	 * 受理开始时间
	 */
	@Excel(name = "受理开始时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date acceptTime;

	/**
	 * 受理结束时间
	 */
	@Excel(name = "受理结束时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date endTime;

	/**
	 * 审批意见
	 */
	@Excel(name = "审批意见")
	@NotBlank(groups = {Sign.class, Fallback.class, Submit.class, Cancellation.class}, message = "审批意见不能为空")
	private String content;

	/**
	 * 办理人员ID
	 */
	@Excel(name = "办理人员ID")
	private Long operId;

	/**
	 * 办理人员
	 */
	@Excel(name = "办理人员")
	private String operName;

	/**
	 * 分组校验
	 */
	public @interface Send {
	}

	/**
	 * 分组校验
	 */
	public @interface Submit {
	}

	/**
	 * 分组校验
	 */
	public @interface Fallback {
	}

	/**
	 * 分组校验
	 */
	public @interface Sign {
	}

	/**
	 * 分组校验
	 */
	public @interface Cancellation {
	}

	public Long getBizLogId() {
		return bizLogId;
	}

	public void setBizLogId(Long bizLogId) {
		this.bizLogId = bizLogId;
	}

	public Long getBizId() {
		return bizId;
	}

	public void setBizId(Long bizId) {
		this.bizId = bizId;
	}

	public void setStepId(Long stepId) {
		this.stepId = stepId;
	}

	public Long getStepId() {
		return stepId;
	}

	public void setResult(String result) {
		this.result = result;
	}

	public String getResult() {
		return result;
	}

	public void setAcceptTime(Date acceptTime) {
		this.acceptTime = acceptTime;
	}

	public Date getAcceptTime() {
		return acceptTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getContent() {
		return content;
	}

	public Long getOperId() {
		return operId;
	}

	public void setOperId(Long operId) {
		this.operId = operId;
	}

	public String getOperName() {
		return operName;
	}

	public void setOperName(String operName) {
		this.operName = operName;
	}
}
